Создание сайтов - статьи

Пример "Заем [денег]"


Давайте разберем детали на примере. Я постараюсь на простеньком бизнес-процессе показать, как определяется процентная ставка (interest rate) возможного заемщика (loan customer), когда услуги по заемам нескольких банков запрашиваются в соответствии с требованиями его заема.

На рисунке 1 представлены первые шаги, необходимые для составления процесса получения заема (loan process). Я сначала проведу вас по схеме процесса (process flow), особо обращая внимание на некоторые ключевые конструкции языка BPEL, а затем рассмотрим фрагменты кода реального процессного языка. (Рассматриваемый пример скачан с OTN.) При изучении течения процесса акцент будет сделан на синтаксисе процессного языка, взаимодействию процесса с конечным пользователем будет уделено меньше внимания.


Рисунок 1: Начальные шаги для получения заема

Первое, запрос для оценки заявки на заем (loan assessment) – это вызов Web-сервиса, полученый через действие . Далее, данные о клиенте выбираются и приводятся к формату, совместимому с сервисом каждого банка, через действие. Сервисы The United Loan Service и the American Loan Service вызываются параллельно из действия , содержащего два действия . По завершению оценки, сервис каждого банка возвращает управление бизнес-процессу получения заема со своей оценкой. Этот входящий (inbound) запрос представлен действием .

Далее, эти результаты сравниваются друг с другом, чтобы определить наилучшую ставку, благодаря использованию действий и , аналогичных конструкции if-then-else в языках программирования. В рамках действия выбирается наилучшая ставка и ее значение присваивается переменной для возврата , благодаря использованию действия . Наконец, результат обоих этих вызовов посылается обратно источнику вызова, благодаря другому действию .

Рассмотрим детали реализации

Процесс, определенный в BPEL, как правило, состоит из двух больших секций: секции деклараций и секции процессных действий, окруженных внешним элементом, который называется и идентифицирует имя/название процесса.


Глобальные декларации. Как правило, первая секция процесса содержит глобальные декларации, в том числе те, которые определяют используемые Web-сервисы и называются , а также те, которые определяют используемые переменные и называются .
На приведены листинги деклараций United Loan и American Loan, а также декларации , ожидаемые этими Web-сервисами. Эти конструкции создаются в Oracle BPEL Designer в начале этапа проектирования до того, как сам процесс написан.
Другие высокоуровневые конструкции, такие, как обработчики глобальных ошибок (global error handlers), называемые , обработчики ошибок глобальных транзакций (global transaction failure handlers), называемые , также декларируются в этой первой секции.
Определение процесса. Вторая часть BPEL-процесса содержит логику процесса — шаги, которые будут предприняты, и Web-сервисы, которые будут использованы для выполнения полезной работы. Попросту говоря, есть два типа действий:

  • Действия-примитивы процессов и данных (Primitive process and data activities) для вызовов и получения вызовов от Web-сервисов, такие как (вызвать), (получить) и (ответить); действия для управления процессом, такие как (ждать) и (завершить); и, наконец, действия для манипулирования данными, такие как (назначить).

  • Структурированные действия для простого программного контроля над тем, какие шаги будут выполняться в бизнес-процессе, включая предложения, циклы, конструкции параллельного исполнения, такие как (течение) и конструкции последовательного исполнения, такие как .

  • На приведен код, обеспечивающий вызов the United Loan Service и American Loan Service. Для вызова каждого банка и включены в некоторую последовательность (sequence), тем самым вынуждая их исполняться один за другим. Но оба действия сами включены в действие , тем самым вынуждая обе подпоследовательности для каждого сервиса (бизнес-процесса получения заема) исполняться параллельно.

    Содержание раздела